﻿using NHibernate;
using CRC.NHibernate;
using CRC.GestionSalones.Dominio.Clases;

namespace CRC.Inspecciones.Dominio.Controlador
{
    class Controlador_NuevoInspector
    {
        public Persona NuevoInspector(
            string pstrNombre, 
            string pstrAp1, 
            string pstrAp2,
            string pstrFijo,
            string pstrMovil1,
            string pstrMovil2,
            string pstrEmail
        )
        {
            ISession session = null;
            ITransaction tx = null;
            Persona inspector = null;

            try
            {
                session = NHibernateHelper.GetCurrentSession();
                tx = session.BeginTransaction();
                TipoPersona tipoInspector = (TipoPersona)session.CreateQuery("from TipoPersona tp where tp.Descripcion='inspector'").UniqueResult();

                inspector = new Persona(pstrNombre, pstrAp1, pstrAp2, pstrFijo, pstrMovil1, pstrMovil2, pstrEmail, tipoInspector);
                inspector.EsInspector = true;
                
                session.Save(inspector);
                tx.Commit();

                return inspector;
            }
            catch (HibernateException he)
            {
                if (tx != null) { tx.Rollback(); }
                if (session != null) session.Close();
                throw he;
            }
        
        }
    }
}
